package object;

public class objectDemo {
    public static void main(String[] args) {
        /*
        调用Object类的equals（），内部还是使用==在比较地址，没有参考意义
        想比较属性是否相同，我们认为Object类的equals（）并不能满足需求
        因此常常需要重写equals（）
         */
        Point p1=new Point(100,200);
        Point p2=new Point(100,200);
        System.out.println(p1==p2);//false比较的是地址
        System.out.println(p1.equals(p2));//
        String s1=new String("hello");
        String s2=new String("hello");
        System.out.println(s1.equals(s2)+" hello");//
        StringBuilder builder=new StringBuilder("hello");
        StringBuilder builder1=new StringBuilder("hello");
        //StringBuilder 类没有重写equals（），因此调用的还是Object类的equals（）比较地址
        System.out.println(builder.equals(builder1));//false
        System.out.println(s1.equals(builder));






        /*
        输出引用变量时会默认调用object类的toString()方法
        该方法返回的字符串格式为；类的全称加@hashcode值
        通常返回值是没有意义的
        我们真正想输出的是属性值
        我们认为Object类的toString（）并不能满足
        因此我们常常重写toString()来返回具体的属性值
         */
        /*
        Point p=new Point(100,200);
        System.out.println(p);//类的全称加@hashcode值
        System.out.println(p.toString());*/
    }
}
